package tpo.modelo;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;

public class Factura {
	private static int proximoNumero = 1;
	private Cliente cliente;
	private int numero;
	private Date fecha;
	private float total;
	private Collection<ItemFactura> items;
	private boolean abierta;
	
	public Factura(Cliente cliente) {
		this.cliente = cliente;
		this.numero = getProximoNumero();
		this.fecha = new Date();
		this.items = new ArrayList<ItemFactura>();
		this.abierta = true;
	}
	
	private int getProximoNumero() {
		return proximoNumero++;
	}

	public void agregarItem(String descripcion, float monto) {
		if(abierta) {
			ItemFactura item = new ItemFactura(descripcion, monto);
			items.add(item);			
		} else {
			System.out.println("Se ha intentado agregar un item factura a una factura cerrada.");
		}
	}
	
	public void cerrar() {
		float total = 0;
		for(ItemFactura item : items) {
			total = total + item.getMonto();
		}
		this.total = total;
		abierta = false;
	}
}
